/**
 * 
 */
package pe.gob.osce.sirenas.model.jpa.fiscalizacion;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.EspecialidadAcademica;
import pe.gob.osce.sirenas.model.jpa.Fiscalizacion;
import pe.gob.osce.sirenas.model.jpa.TrayectoriaArbitral;

/**
 * @author Administrador
 *
 */
@Entity
@Table(name="DET_ADM_FIS_TRAYEC_ARBITRAL",schema="RNAS")
@IdClass(FiscalizaTrayecArbitralPK.class)
public class FiscalizaTrayecArbitral  implements Serializable {

	private static final long serialVersionUID = 2244853566329254157L;
	
	@Id
	@Column(name="N_ID_FISCALIZACION")
	private Long idFiscalizacion;
	@Id
	@Column(name="N_ID_TRAYECTORIA")
	private Long idTrayectoria;
	
	@Column(name="N_ID_FICHA")
	private Long idFicha;
	@Column(name="C_DES_ACCION")
	private String descAccion;
	@Column(name="C_DES_RESULTADO")
	private String descResultado;
	
	@Column(name="N_IND_ESTADO")
	private Long estado;
	
	@Embedded
	private Auditoria auditoria;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="N_ID_TRAYECTORIA", insertable=false, updatable=false)
	private TrayectoriaArbitral	trayectoriaArbitral;
	
	@ManyToOne( cascade = { CascadeType.ALL } )
	@JoinColumn(name="N_ID_FISCALIZACION", insertable=false, updatable=false)
    private Fiscalizacion fiscalizacion;
	
	
	/**
	 * Metodo que permite obtener trayectoriaArbitral.
	 * @return trayectoriaArbitral , tipo TrayectoriaArbitral.
	 */
	public TrayectoriaArbitral getTrayectoriaArbitral() {
		return trayectoriaArbitral;
	}

	/**
	 * Permite actualizar trayectoriaArbitral.
	 * @param trayectoriaArbitral, tipo TrayectoriaArbitral.
	 */
	public void setTrayectoriaArbitral(TrayectoriaArbitral trayectoriaArbitral) {
		this.trayectoriaArbitral = trayectoriaArbitral;
	}

	/**
	 * Metodo que permite obtener idFiscalizacion.
	 * @return idFiscalizacion , tipo Long.
	 */
	public Long getIdFiscalizacion() {
		return idFiscalizacion;
	}

	/**
	 * Permite actualizar idFiscalizacion.
	 * @param idFiscalizacion, tipo Long.
	 */
	public void setIdFiscalizacion(Long idFiscalizacion) {
		this.idFiscalizacion = idFiscalizacion;
	}


	/**
	 * Metodo que permite obtener idTrayectoria.
	 * @return idTrayectoria , tipo Long.
	 */
	public Long getIdTrayectoria() {
		return idTrayectoria;
	}

	/**
	 * Permite actualizar idTrayectoria.
	 * @param idTrayectoria, tipo Long.
	 */
	public void setIdTrayectoria(Long idTrayectoria) {
		this.idTrayectoria = idTrayectoria;
	}

	/**
	 * Metodo que permite obtener idFicha.
	 * @return idFicha , tipo Long.
	 */
	public Long getIdFicha() {
		return idFicha;
	}

	/**
	 * Permite actualizar idFicha.
	 * @param idFicha, tipo Long.
	 */
	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}

	/**
	 * Metodo que permite obtener descAccion.
	 * @return descAccion , tipo String.
	 */
	public String getDescAccion() {
		return descAccion;
	}

	/**
	 * Permite actualizar descAccion.
	 * @param descAccion, tipo String.
	 */
	public void setDescAccion(String descAccion) {
		this.descAccion = descAccion;
	}

	/**
	 * Metodo que permite obtener descResultado.
	 * @return descResultado , tipo String.
	 */
	public String getDescResultado() {
		return descResultado;
	}

	/**
	 * Permite actualizar descResultado.
	 * @param descResultado, tipo String.
	 */
	public void setDescResultado(String descResultado) {
		this.descResultado = descResultado;
	}

	/**
	 * Metodo que permite obtener estado.
	 * @return estado , tipo Long.
	 */
	public Long getEstado() {
		return estado;
	}

	/**
	 * Permite actualizar estado.
	 * @param estado, tipo Long.
	 */
	public void setEstado(Long estado) {
		this.estado = estado;
	}

	/**
	 * Metodo que permite obtener auditoria.
	 * @return auditoria , tipo Auditoria.
	 */
	public Auditoria getAuditoria() {
		return auditoria;
	}

	/**
	 * Permite actualizar auditoria.
	 * @param auditoria, tipo Auditoria.
	 */
	public void setAuditoria(Auditoria auditoria) {
		this.auditoria = auditoria;
	}

	/**
	 * Metodo que permite obtener fiscalizacion.
	 * @return fiscalizacion , tipo Fiscalizacion.
	 */
	public Fiscalizacion getFiscalizacion() {
		return fiscalizacion;
	}

	/**
	 * Permite actualizar fiscalizacion.
	 * @param fiscalizacion, tipo Fiscalizacion.
	 */
	public void setFiscalizacion(Fiscalizacion fiscalizacion) {
		this.fiscalizacion = fiscalizacion;
	}
	
}
